package com.adamjwh.pratice.offer;

import java.util.ArrayList;

/**
 * 输入一个递增排序的数组和一个数字S，在数组中查找两个数，使得他们的和正好是S，如果有多对数字的和等于S，输出两个数的乘积最小的。
 */
public class FindNumsSum {
    public ArrayList<Integer> FindNumbersWithSum(int [] array, int sum) {
        ArrayList<Integer> result = new ArrayList<>(2);

        if (array == null || array.length < 2) {
            return result;
        }

        int len = array.length;
        int start = 0;
        int end = len - 1;

        while (start < end && start < len-1 && end > 0) {
            if (array[start] + array[end] == sum) {
                result.add(array[start]);
                result.add(array[end]);

                return result;
            }

            if (array[start] + array[end] > sum) {
                end --;
            }

            if (array[start] + array[end] < sum) {
                start ++;
            }
        }

        return result;
    }

}
